﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using MyTimeLine.Util;

namespace MyTimeLine.Models.Views
{
    public class ContatoModel
    {
        [Required(ErrorMessageResourceType = typeof(Mensagens), ErrorMessageResourceName = "ValidacaoGenerico_Nome_Obrigatório")]
        [Display(Name = MensagensLabel.Generico_Nome)]
        [StringLength(100, ErrorMessageResourceType = typeof (Mensagens), ErrorMessageResourceName = "ValidacaoGenerico_Limite_Max")]
        public string Nome { get; set; }

        [Required(ErrorMessageResourceType = typeof (Mensagens), ErrorMessageResourceName = "ValidacaoGenerico_Email_Obrigatório")]
        [RegularExpression(@"^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-‌​]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$", ErrorMessageResourceType = typeof(Mensagens), ErrorMessageResourceName = "ValidacaoGenerico_Email_Invalido")]
        [Display(Name = MensagensLabel.Generico_Email)]
        [StringLength(50, ErrorMessageResourceType = typeof(Mensagens), ErrorMessageResourceName = "ValidacaoGenerico_Limite_Max")]
        public string Email { get; set; }

        [StringLength(50, ErrorMessageResourceType = typeof(Mensagens), ErrorMessageResourceName = "ValidacaoGenerico_Limite_Max")]
        public string Telefone { get; set; }


        [Required(ErrorMessageResourceType = typeof (Mensagens), ErrorMessageResourceName = "ValidacaoContato_Tipo_Contato_Obrigatório")]
        [Display(Name = MensagensLabel.Contato_Tipo_Contato)]
        public string ValorTipoEmail { get; set; }
        private ListItem tipoContato = new ListItem(Mensagens.Texto_VazioCombos, "" );
        public ListItem TipoContato
        {
            get { return tipoContato; }
            set { tipoContato = value; }
        }

        [Required(ErrorMessageResourceType = typeof (Mensagens), ErrorMessageResourceName = "ValidacaoContato_Mensagem_Obrigatório")]
        [Display(Name = MensagensLabel.Contato_Mensagem)]
        [StringLength(1000, ErrorMessageResourceType = typeof(Mensagens), ErrorMessageResourceName = "ValidacaoGenerico_Limite_Max")]
        public string Mensagem { get; set; }

        /// <summary>
        /// Listq Montada a partir dos valores do resources <see cref="Mensagens.Contato_Lista_Tipo_Assunto"/>
        /// </summary>
        /// <returns></returns>
        public ListItemCollection ListarTiposContato()
        {
            ListItemCollection lista = new ListItemCollection{new ListItem(Mensagens.Texto_VazioCombos, "")};

            for (int index = 0; index < Mensagens.Contato_Lista_Tipo_Assunto.Split(',').Length; index++)
            {
                string valor = Mensagens.Contato_Lista_Tipo_Assunto.Split(',')[index];
                lista.Add(new ListItem(valor, index.ToString()));
            }

            return lista;
        }
    }

}